package com.may.nio;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;

/**
 * @program: com.may.netty
 * @description:
 * @author: Bobby.Ma
 * @create: 2020-08-08 12:26
 **/
public class NIOClient {
    public static void main(String[] args) throws IOException {
        //得到一个网络通道
        SocketChannel channel = SocketChannel.open();
        //设置非阻塞模式
        channel.configureBlocking(false);
        //提供服务器端的 ip 和端口
        InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 9999);
        //连接服务器
        if (!channel.connect(inetSocketAddress)) {
            while (!channel.finishConnect()) {
                System.out.println("客户端完成连接是需要时间的，由于设置了非阻塞，所以在完成连接前可以做其他的操作！");
            }
        }
        //连接成功发送数据
        String msg = "hello bobby";
        //包裹一个字节数组到 buffer 中。自动生成字节数大小的buffer，而不用预先指定 buffer 的大小
        ByteBuffer buffer = ByteBuffer.wrap(msg.getBytes());
        //将 buffer 数据写入 channel
        channel.write(buffer);
        //让程序停在这
        System.in.read();
    }
}
